<?php
/**
 * Created by PhpStorm.
 * User: SATA
 * Date: 2017/8/17
 * Time: 13:35
 */

namespace app\common\model;


class Teacher extends \think\Model
{
    /*注册一个新老师
    @param  string $num     编号
    @param  string $name    姓名
    @param  string $tel     电话
    @param  string $gender  性别
    @param  string $photo   图片路径
    @param  string $grade   年级
    @param  string $subject 科目
    @param  string $charge  收费
    @param  string $profile 个人简介
    @param int $front_state 是否首页显示
    $return string $return  注册成功-1，意外失败-0，其他问题-显示问题
    */
    public function register($num,$name,$tel,$gender,$photo,$grade,$subject,$charge,$profile,$front_state){
        $data = array(
            'num'=>$num,
            'name'=>$name,
            'tel'=>$tel,
            'gender'=>$gender,
            'photo'=>$photo,
            'grade'=>$grade,
            'subject'=>$subject,
            'charge'=>$charge,
            'profile'=>$profile,
            'front_state'=>$front_state
        );

        $validate = \think\Loader::validate('Teacher');
        if(!$validate->check($data))
            return $validate->getError();
        if($user_data=$this->create($data))
            $user_data=$user_data->toArray();
        if ($user_data) {
            $uid= $user_data['id'];
            if($uid)
                return 1;
            else
                return 0;
//            return $uid ? $uid : 0; //0-未知错误，大于0-注册成功
        }else{
            return $this->getError();
        }
    }

    /*查询指定姓名的老师
    @param  string $name    姓名
    @return array  $teacher 存在-教师信息，不存在-FLASE
    */
    public function name_contact($name){
        if(strpos($name,',')){
            $name = explode(',',$name);
        }
        $map = array('name'=>array('IN',$name));
        if($teachers = $this->where($map)->select())
            return $teachers;
        else
            return $this->getError();
    }

    /*查询指定编号的老师
    @param  string  $num    编号，编号
    @return array $teachers 存在-教师信息，不存在-FLASE*/
    public function num_contact($num){
        if(strpos($num,',')){
            $num = explode(',',$num);
        }
        $map = array('num'=>array('IN',$num));
        if($teachers = $this->where($map)->select())
            return $teachers;
        else
            return $this->getError();
    }

    /*删除指定编号的老师
    @param  string  $num     编号，编号
    @return number  $return  成功-TRUE，失败-FLASE*/
    public function num_destory($num){
        if(strpos($num,',')){
            $num = explode(',',$num);
        }
        $map = array('num'=>array('IN',$num));
        if($teachers = $this->where($map)->delete())
            return true;
        else
            return false;
    }

    /*  修改指定姓名的老师
    @param  string $num     编号
    @param  string $name    姓名
    @param  string $tel     电话
    @param  string $gender  性别
    @param  string $photo   图片路径
    @param  string $grade   年级
    @param  string $subject 科目
    @param  string $charge  收费
    @param  string $profile 个人简介
    @param int $front_state 是否首页显示
    @return string $return  修改的条数*/
    public function edit($num,$name,$tel,$gender,$photo,$grade,$subject,$charge,$profile,$front_state){
        $data = array(
            'num'=>$num,
            'tel'=>$tel,
            'gender'=>$gender,
            'photo'=>$photo,
            'grade'=>$grade,
            'subject'=>$subject,
            'charge'=>$charge,
            'profile'=>$profile,
            'front_state'=>$front_state
        );

        $validate = \think\Loader::validate('Teacher');
        if(!$validate->scence('edit')->check($data))
            return $validate->getError();
        if($user_data=$this->save($data,['name'=>$name]))
            return $user_data;
        else
            return $this->getError();
    }

    /*查询需要首页显示的老师
    @return array $return 需要首页显示的老师的信息
    */
    public function front_teacher(){
        if($tecahers = $this->where('front_state',1))
            return $tecahers;
        else
            return $this->getError();
    }
}